// BaseList.h: interface for the CBaseList class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BASELIST_H__93427566_9D1F_4B97_8D40_4A9B70A1B95D__INCLUDED_)
#define AFX_BASELIST_H__93427566_9D1F_4B97_8D40_4A9B70A1B95D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "afxtempl.h"
#include "CustomElement.h"

class CBaseList : public CCustomElement  
{
public:
	virtual void ParseXMLNode();
	virtual liveneo::tstring GetXMLText();
	int Remove(CObject* obj);
	void SetSubKeyName(liveneo::tstring name);
	liveneo::tstring GetSubKeyName();
	virtual CBaseElement* NewNode() =0;
	liveneo::tstring GetItemsXMLText();
	virtual void AddTail(CBaseElement*element);
	virtual CBaseElement* GetItemByKey(liveneo::tstring ItemKey);
	virtual void AddHead(CBaseElement* element);
	virtual void Clear();
	virtual void Delete(int iIndex);
	virtual CBaseElement* GetAt(int iIndex);
	int GetCount();
	CBaseList(const liveneo::tstring & AKeyName);
	virtual ~CBaseList();

private:
	liveneo::tstring m_csSubKeyName;
	CObList * m_pItems;
};

#endif // !defined(AFX_BASELIST_H__93427566_9D1F_4B97_8D40_4A9B70A1B95D__INCLUDED_)
